package cn.wolfcode.p2p.business.service;

import cn.wolfcode.p2p.base.domain.Account;
import cn.wolfcode.p2p.business.domain.BidRequest;
import cn.wolfcode.p2p.business.domain.PaymentSchedule;
import cn.wolfcode.p2p.business.domain.PaymentScheduleDetail;

import java.math.BigDecimal;

public interface IAccountFlowService {
        void createRechargeOfflineAccountFlow(BigDecimal amount, Account account);
        void createBaseAccountFlow(BigDecimal amount,Account account,int actionType,String note);

        void createBidFreezedFlow(BigDecimal amount, Account account);

        void createBidFailureFlow(BigDecimal amount, Account account, BidRequest br);

        void createBorrowSuccessFlow(BigDecimal amount, Account account, BidRequest br);

        void createBorrowAccountManagementChargeFlow(BigDecimal amount, Account account, BidRequest br);

        void createBidSuccessFlow(Account biderAccount, BigDecimal availableAmount, BidRequest br);

        void createReturnMoneyFlow(Account borrowerAccount, PaymentSchedule ps);

        void createCollectionFlow(Account account, BigDecimal totalAmount, PaymentSchedule ps);

        void createInterestManagerChargeFlow(Account account, BigDecimal interestManagerCharge);

        void createCreditTransferSuccessFlow(Account transferFromAccount, BigDecimal bidRequestAmount);

        void createCreditTransferForSubscribeFlow(Account currentAccount, BigDecimal bidRequestAmount);

        void createRechargeOnline(Account account, BigDecimal amount);
}
